function [a,b]=myHough(I, radii)
%Input:
%- I      das (vorbereitete) Bild in welchem die Noten erkannt werden sollen
%- radii  die Radii der Notenkoepfe (ueblicherweisse die Zeilenhoehe +- 3% 
% Diese Funktion detektiert Notenkoepfe. Ein Notenkopf ist eine Ellipse auf
% einer, oder zwischen zwei Linien. Notenkoepfe haben ueblicherweisse eine
% Neigung von 30 grad.


%Kantenbild
edges=canny(I);
%edges=edge(I,'canny');
%imshow(edges);
[y,x]=find(edges);
[h,w]=size(I);

a=1;
b=1;

%Durchlaufen aller Radii
for count=1:length(radii)
    radius=radii(count);
    radius=radius*1.3;      %Radius wird hier auf laenge a der Ellipse geaendert
   
    img=zeros(int16(h+2*radius),int16(w+2*radius)); %Bild vergroessern um keine index-Probleme zu erhalten
    for count=1:length(x)
     img=drawEllipse(img,x(count)+radius,y(count)+radius,radius,radius/3*2,33,0.30/radius);
    end
    %imshow(img); %Houghbild zeichnen
    img=im2bw(img,0.76);    %Schwellwert, ab dem eine Note erkannt wird

   
    img=img(int16(radius:end-radius),int16(radius:end-radius)); %Bild wieder verkleinern
    [s,t]=find(img);
    a=[a; s];
    b=[b; t];
end

radius=max(radii);
radius=int16(ceil(radius));
img=zeros(h+2*radius,w+2*radius);
a=a(a~=1);
b=b(b~=1);
for count=1:length(a)
   img(a(count)+radius,b(count)+radius)=1; 
end

%Entfernen der Mehrfacherkennungen
for x=1:h
   for y=1:w
      if img(x,y)==1
  tmpx=x;
          tmpy=y;
          num=1;
          for p=x-radius:x+radius
              for q=y-radius:y+radius
                  if img(p,q)==1;
                      num=num+1;
                      tmpx=tmpx+p;
                      tmpy=tmpy+q;
                  end
              end
          end
         % disp([tmpx,tmpy,num]);
          img(x-radius:x+radius,y-radius:y+radius)=0;
          img(round(tmpx/num),round(tmpy/num))=1;
      end
   end
end
img=img(radius:end-radius,radius:end-radius);
[a,b]=find(img);


end

